Trusted access by an extendible framework system, article of manufacture, and computer program product

ABSTRACT

Appropriate actions are identified and associated with a selected artifact in a framework providing a customized application program. A metamodel is specified for a capture of relevant information pertaining to the selected artifact. This metamodel is implemented as a plugin which is integratable into the framework and which allows other plugins of the framework to access the relevant information pertaining to the selected artifact. A collection artifact is generated containing an empty instantiation of the metamodel in which an instantiation of the metamodel may be stored, and the collection artifact is sent to a target platform. On the target platform, the collection artifact containing an instance of the selected artifact is instantiated, and each instantiation of the selected artifact instance contains attributes, characteristics, and a replica of the selected artifact&#39;s content. The instantiated collection artifact is transmitted back to the framework, and the selected artifact&#39;s attributes and characteristics contained in the instantiated collection artifact are analyzed to ascertain appropriate access and actions allowed on the selected artifact.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 11/356,774filed on Feb. 17, 2006, which is incorporated herein by reference in itsentirety.

Application Ser. No. 11/356,774 is a continuation of application Ser.No. 10/347,566 filed on Jan. 17, 2003, which is also incorporated hereinby reference in its entirety.

COPYRIGHT PROTECTION

A portion of the Disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general to computer programs and files,and more particularly to an association between a computer program and afile.

2. Description of the Related Art

Users developing e-business applications on an integrated developmentenvironment (IDE) are challenged with the need to uniquely identify andassociate various file types and artifacts from multiple disparateplatforms with the appropriate viewers, editors, and transformationtools compatible with the characteristics and attributes of thoseobjects. Use of an inappropriate viewer, editor, or transformation toolmay not only cause the selected action to fail, it may also corrupt afile and cause a loss of data.

For example, IBM S/390 files do not have an associated file type (IBMand S/390 are registered trademarks of International Business MachinesCorporation in the United States, other countries, or both). If a S/390file is downloaded to a user workstation, the need exists to correctlyidentify this S/390 file based upon its file attributes andcharacteristics. The need also exists to subsequently designate thecorrect association with tools available on the IDE which may operate onthis S/390 file, as well as ascertain and designate an appropriate levelof accessibility of this file. These needs are critical in thepreservation of the file's integrity and accessibility.

Thus a user needs a way to uniquely identify and associate a file typewith an artifact based upon an analysis of the file's attributes andcharacteristics.

The user also needs to associate a unique and easily discernible visualcue to the file or artifact to allow easy and rapid identification amongthe other file types or artifacts which may have originated from similaror disparate platforms which also reside within the integrateddevelopment environment.

The user also needs to associate appropriate and specialized actions tothe file or artifact to allow the user to interact with it in a mannerconsistent and correct with its originating platform. This includesactions which may be performed back on the originating platform (e.g.compile, link, etc.).

The user also needs to deduce whether or not the file or artifact isread-only or read-writable based upon the attributes of the file orartifact as well as the user's authorization privileges.

These needs apply to files and artifacts which are brought into the IDEfrom the different platforms as well as file and artifacts which arecreated on the IDE platform.

There is also a need to identify the source from where the file orartifact originated so that an action to be performed on the artifact isforwarded to the appropriate platform, e.g., if the artifact is an IBMOS/390 COBOL program which originated on a OS/390 system, then acompilation and linkedit should preferably be performed on the OS/390system from where the artifact originated (OS/390 is a registeredtrademark of International Business Machines Corporation in the UnitedStates, other countries, or both).

There is also a need for a mechanism to uniquely identify and associatevarious files and artifacts from multiple disparate platforms with theappropriate viewers, editors, and transformation tools to providecorrect interaction with the files and artifacts in a manner consistentto its originating platform.

Correctly associating the appropriate viewers, editors, andtransformation tools to the files and artifacts from the multipledisparate platforms in concert with the capability to correctly deduceaccessibility attributes reduces the corruption of files and loss ofdata which otherwise may be caused through the accidental or intentionalusage of inappropriate viewers, viewers and transformation tools on thefiles and artifacts.

Conventional systems and methods have failed to provide all of the aboveadvantages. Thus, there is a clearly felt need for a method of, systemfor, article of manufacture, and computer program product for providingremote installation and deployment with these advantages.

SUMMARY OF THE INVENTION

The present invention comprises a method, system, article ofmanufacture, and a computer program product for identifying andassociating appropriate actions to a selected artifact in a frameworkproviding a customized application program. A metamodel is specified fora capture of relevant information pertaining to the selected artifact.This metamodel is implemented as a plugin which is integratable into theframework and which allows other plugins of the framework to access therelevant information pertaining to the selected artifact. A collectionartifact is generated containing an empty instantiation of the metamodelin which an instantiation of the metamodel may be stored, and thecollection artifact is sent to a target platform. On the targetplatform, the collection artifact containing an instance of the selectedartifact is instantiated, and each instantiation of the selectedartifact instance contains attributes, characteristics, and a replica ofthe selected artifact's content. The instantiated collection artifact istransmitted back to the framework, and the selected artifact'sattributes and characteristics contained in the instantiated collectionartifact are analyzed to ascertain appropriate access and actionsallowed on the selected artifact.

One aspect of a preferred embodiment of the present invention generatesthe collection artifact by a builder plugin associated with themetamodel plugin in response to a request to access the selectedartifact.

In another aspect of a preferred embodiment of the present invention,the collection artifact comprises an XML METADATA INTERCHANGE (XMI)metadata file containing empty instantiations of the metamodel (XMI iseither a registered trademark or trademark of Object Management Group,Inc. in the United States and/or other countries.)

In another aspect of a preferred embodiment of the present invention,the sending of the collection artifact to the target platform isperformed by a communicating plugin responsible for communicating toother platforms and for retrieving artifacts from those other platforms.

In another aspect of a preferred embodiment of the present invention,the allowable action is an invocation of an additional processing pluginwhich may process the selected artifact.

In another aspect of a preferred embodiment of the present invention,the processing plugin is a viewer.

In another aspect of a preferred embodiment of the present invention,the processing plugin is a browser.

In another aspect of a preferred embodiment of the present invention,the processing plugin is an editor.

In another aspect of a preferred embodiment of the present invention,the processing plugin is a transformational tool.

In another aspect of a preferred embodiment of the present invention,the plugin is an MOF-enabled Java file generated from an XMI metamodelschema generated from a UNIFIED MODELING LANGUAGE (UML) representationof the metamodel (MOF, UNIFIED MODELING LANGUAGE, and UML are trademarksof Object Management Group, Inc. in the United States and/or othercountries.).

A preferred embodiment of the present invention has the advantage ofidentifying file types and artifacts based upon an analysis of a file'sattributes and characteristics.

A preferred embodiment of the present invention has the furtheradvantage of associating file types and artifacts based upon theanalysis of a file's attributes and characteristics.

A preferred embodiment of the present invention has the furtheradvantage of associating file types and artifacts with appropriate toolscompatible with the characteristics and attributes of those file typeswhich may operate on those file types, such as viewers, editors, andtransformation tools.

A preferred embodiment of the present invention has the furtheradvantage of associating appropriate or specialized actions to a file orartifact to allow a user to interact with it in a manner consistent andcorrect with its originating platform.

A preferred embodiment of the present invention has the furtheradvantage of identifying and associating both local file types andartifacts and those from multiple disparate platforms with the toolscompatible with the characteristics and attributes of those objects.

A preferred embodiment of the present invention has the furtheradvantage of identifying and associating file types and artifacts toascertain and designate an appropriate level of accessibility

A preferred embodiment of the present invention has the furtheradvantage of identifying an originating platform from where the file andartifacts originated so that an action to be performed on the file maybe forwarded to the originating platform. For example if the artifact isan OS/390 COBOL program, then actions comprising a compilation andlinkedit may be forwarded back to an originating OS/390 platform wherethe artifact originated for the actions to be performed on the OS/390platform.

A preferred embodiment of the present invention has the furtheradvantage of associating a visual cue with the file or artifact toprovide improved identification of the file or artifact from among otherfile types or artifacts which may have originated from similar ordisparate platforms.

A preferred embodiment of the present invention has the furtheradvantage of providing improved file integrity.

A preferred embodiment of the present invention has the furtheradvantage of providing improved file accessibility.

A preferred embodiment of the present invention has the furtheradvantage of reducing the corruption of files and loss of data throughthe accidental or intentional usage of inappropriate viewers, viewersand transformation tools on the files and artifacts.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference is now made to the Description of thePreferred Embodiment in conjunction with the attached Drawings, inwhich:

FIG. 1 is a block diagram of a computer system used in performing themethod of the present invention, forming part of the apparatus of thepresent invention, and which may use the article of manufacturecomprising a computer-readable storage medium having a computer programembodied in said medium which may cause the computer system to practicethe present invention;

FIG. 2 is a block diagram of a framework and a target server preferredin carrying out a preferred embodiment of the present invention; and

FIG. 3 and FIG. 4 are flowcharts of method steps preferred in carryingout a preferred embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

An embodiment of the invention is now described with reference to thefigures where like reference numbers indicate identical or functionallysimilar elements. Also in the figures, the left most digit of eachreference number corresponds to the figure in which the reference numberis first used. While specific configurations and arrangements arediscussed, it should be understood that this is done for illustrativepurposes only. A person skilled in the relevant art will recognize thatother configurations and arrangements may be used without departing fromthe spirit and scope of the invention. It will be apparent to a personskilled in the relevant art that this invention may also be employed ina variety of other devices and applications.

With reference now to the figures, and in particular with reference toFIG. 1, there is depicted a pictorial representation of a computersystem 100 which may be utilized to implement a method, system, articleof manufacture, data structure, and computer program product ofpreferred embodiments of the present invention. The block diagram ofFIG. 1 illustrates a computer system 100 used in performing the methodof the present invention, forming part of the apparatus of the presentinvention, and which may use the article of manufacture comprising acomputer-readable storage medium having a computer program embodied insaid medium which may cause the computer system to practice the presentinvention. The computer system 100 includes a processor 102, whichincludes a central processing unit (CPU) 104, and a memory 106.Additional memory, in the form of a hard disk file storage 108 and acomputer-readable storage device 110, is connected to the processor 102.Computer-readable storage device 110 receives a computer-readablestorage medium 112 having a computer program embodied in said mediumwhich may cause the computer system to implement the present inventionin the computer system 100. The computer system 100 includes userinterface hardware, including a mouse 114 and a keyboard 116 forallowing user input to the processor 102 and a display 118 forpresenting visual data to the user. The computer system may also includea printer 120.

Referring now to FIG. 2, a block diagram of a preferred embodiment ofthe present invention illustrates an IDE framework 200 which uses amechanism for plugin tools or components to provide a customized IDE 200with the appropriate viewers 202, editors 204, and transformation tools206 to support an e-business developer's needs. The preferred embodimentprovides a solution for correctly identifying and associatingappropriate actions such as browsers 208, editors 204, andtransformation tools 206 which may be appropriately used on an artifact228, such as a file, in compliance with the rules of an originatingplatform 220 from which the artifact 228 originated. The identificationand association of appropriate actions is provided through theemployment of a metamodel 234 where the artifact's metadata such asattributes 236 and characteristics 238 as well as an actual faithfulreplica of the artifact's content 240 are instantiated when the artifact228 is exported from its originating platform 220 and read when theartifact 228 is imported into the IDE platform 200 where the artifact228 may be manipulated in the IDE 200. This metamodel is realized as ametamodel plugin 210 which is accessible to other plugins located withinthe IDE 200. The metamodel plugin 210 determines appropriate actionswhich may be performed upon the artifact 228 based upon an analysis ofthe metadata information 244 and 246 of the artifact 242 performed by ananalyzing plug-in 248.

For example, if a specified target artifact 228 to be retrieved into theIDE 200 is an IBM OS/390 COBOL file, then on the OS/390 side 220, thepreferred embodiment of the present invention instantiates an instance234 of the metamodel with the attributes 236 and characteristics 238such as the target artifact's OS/390 file member's name, owningpartition dataset, partition dataset information, Resource AccessControl Facility (RACF) authorization and accessibility levels, andrecord format (RACF is a registered trademark of International BusinessMachines Corporation in the United States, other countries, or both).The instantiated instance 234 of the specified target artifact 228 inthe form of an XMI metadata file is transferred to the IDE 200 where theappropriate plugins residing in the IDE 200 open the XMI metadata file242 to ascertain the file's accessibility and appropriate allowableactions by a specific set of viewers 202, editors 204, andtransformation tools 206. If the end-user initiates an editor actionagainst the file's content 250, then the invoked editor 204 interactswith the file's content 250 in a manner compliant with how an editor onOS/390 220 edits the artifact's content 250 sensitive to file recordlength and any other file content specifications. Likewise, if theend-user initiates a remote compile/link on the artifact's content 250,then the artifact's content 250 along with any pertinent file attribute244 and characteristic 246 such as environment information istransmitted back to the target OS/390 system 220 for processing on thetarget OS/390 system 220, and the results of the remote compile/linktransformation action are subsequently transmitted back to the IDE 200.

Referring now to FIGS. 3 and 4, the flowcharts 300 and 400 illustratethe operations preferred in carrying out the preferred embodiment of thepresent invention. In the flowcharts, the graphical conventions of adiamond for a test or decision and a rectangle for a process or functionare used. These conventions are well understood by those skilled in theart, and the flowcharts are sufficient to enable one of ordinary skillto write code in any suitable computer programming language.

After the start 305 of the process 300, process block 310 specifies ametamodel which allows for the capture of relevant information of theartifacts pertinent across the multiple disparate platforms, andthereafter, process block 315 defines this metamodel in a UMLrepresentation. Using the UML representation of the metamodel, processblock 320 generates the corresponding XMI metamodel schema for themetamodel. Process block 325 next uses the above generated XMI metamodelschema to generate corresponding MOF enabled Java files for the XMImetamodel. This generated MOF-enabled Java code allows the user toprogrammatically instantiate the metamodel and subsequently manipulatethe metamodel via modifications, deletions, and additions of themetamodel instantiation. The generated MOF enabled Java files areimplemented by process block 330 as a metamodel plugin 210 which may beintegrated into the IDE framework 200. This allows other plugins 202,204, 206, and 208 of the IDE framework 200 access to the attributes 244,characteristics 246 and other information pertaining to the artifactwhich may not reside within the file. The metamodel plugin 210 may thenbe employed to transfer files from the target platform 220 into the IDE200. When the end-user submits the request to browse within the IDE 200available files located on a target server 220, a builder plugin 222associated with the metamodel plugin 210 generates an empty collectionartifact 224, as illustrated in process block 335, which allows for thestorage of an instantiation of the metamodel. This empty collectionartifact 224 is realized as an XMI metadata file 224 containing an emptyinstantiation of the metamodel. Process block 340 then fires thecommunicating plugin 226 responsible for communicating to other servers220 in order to retrieve artifacts 228. This communicating plugin 226transmits the empty collection artifact 224 realized as an XMI metadatafile to the target platform 220. Thereafter, processing continues todecision block 455 on FIG. 4. This processing path is illustrated byflowchart connectors A, 345 on FIGS. 3 and 450 on FIG. 4.

Referring now to FIG. 4, after the empty collection artifact message 230arrives at the target platform 220 and is handled by the receivingprogram 232, process block 455 instantiates an XMI metadata file 234 foreach artifact selected by the user. Each instantiation of the XMIinstance file contains the attributes 236, characteristics 238 and anactual faithful replica of the target artifact's content 240. When theuser has completed the selection of the set of artifacts 228 that theuser wishes to transfer, process block 460 transmits the XMI metadatafile 234 back to the IDE 200. The XMI metadata file 242 as received bythe framework 200 contains instantiations 242 of the metamodel for eachselected artifact.

Once the XMI metadata file 242 is received by the IDE 200, an analyzingplugin 248 residing in the IDE 200 opens the XMI metadata file 242 andanalyzes the selected artifact's attributes 244 and characteristics 246contained the instantiated collection artifact 242 to ascertainappropriate access and actions allowed on the selected artifact 242 by aspecific set of viewers, editors and transformation tools, process block465. Based upon this analysis, process block 470 extracts an actualfaithful replica 250 of the target file from the XMI metadata file 242and renders the replica 250 on the IDE's file navigation viewer windowwithin the IDE GUI 252. An appropriate visual cue is assigned to theartifact by process block 475 to denote one or more of it's attributes244 and characteristics 246, such as if it is read-only or read-write.In addition, process block 480 ascertains an appropriate set ofallowable actions for the file or artifact, and makes appropriatecontributions to the IDE's menu bar, task bar and/or pop-up menu bar forwhen the file or artifact gains context focus within the IDE 200. Theseactions allow for the invocation of additional plugins which may processthe file either in a browser 208, editor 204, or transformation capacity206.

If the user interacts with the artifact 242 which originated from adifferent platform 220 rather than the platform of the IDE 200, theactions presented to the user via the menu bar, task bar, or pop-up menubar are only the set of actions appropriate to the artifact 242 basedupon the above analysis of the artifact's attributes 244 andcharacteristics 246. Thus, if the user selects an action which should beperformed on the originating platform 220, then process block 485activates the communicating plugin 226 to initiate a remote launch ofthe appropriate process on the target originating platform 220 basedupon information such as the target originating platform 220 that wasconveyed to the IDE 200 via the XMI metadata file 242. The necessarycalling parameters are instantiated with the correct information by theplugin performing the remote server invocation. The process then ends atprocess block 490.

Using the foregoing specification, the invention may be implementedusing standard programming and/or engineering techniques using computerprogramming software, firmware, hardware or any combination orsub-combination thereof. Any such resulting program(s), having computerreadable program code means, may be embodied within one or more computerusable media such as fixed (hard) drives, disk, diskettes, opticaldisks, magnetic tape, semiconductor memories such as Read-Only Memory(ROM), Programmable Read-Only Memory (PROM), etc., or any memory ortransmitting device, thereby making a computer program product, i.e., anarticle of manufacture, according to the invention. The article ofmanufacture containing the computer programming code may be made and/orused by executing the code directly or indirectly from one medium, bycopying the code from one medium to another medium, or by transmittingthe code over a network. An apparatus for making, using, or selling theinvention may be one or more processing systems including, but notlimited to, central processing unit (CPU), memory, storage devices,communication links, communication devices, servers, input/output (I/O)devices, or any sub-components or individual parts of one or moreprocessing systems, including software, firmware, hardware or anycombination or sub-combination thereof, which embody the invention asset forth in the claims. User input may be received from the keyboard,mouse, pen, voice, touch screen, or any other means by which a human mayinput data to a computer, including through other programs such asapplication programs, databases, data sets, or files.

One skilled in the art of computer science will easily be able tocombine the software created as described with appropriate generalpurpose or special purpose computer hardware to create a computer systemand/or computer sub-components embodying the invention and to create acomputer system and/or computer sub-components for carrying out themethod of the invention. Although the present invention has beenparticularly shown and described with reference to a preferredembodiment, it should be apparent that modifications and adaptations tothat embodiment may occur to one skilled in the art without departingfrom the spirit or scope of the present invention as set forth in thefollowing claims.

1. A hardware implemented article of manufacture for use in a computersystem for identifying and associating appropriate actions to a selectedartifact in a framework providing a customized application program, saidhardware implemented article of manufacture comprising acomputer-readable storage medium having a computer program embodied insaid medium which causes the computer system to execute the method stepscomprising: specifying a metamodel for a capture of relevant informationpertaining to the selected artifact; implementing the metamodel as aplugin, said plugin being integratable into the framework and allowinganother plugin of the framework to access the relevant informationpertaining to the selected artifact; generating a collection artifactcontaining an empty instantiation of the metamodel in which aninstantiation of the metamodel may be stored; sending, from theframework, the collection artifact to a target platform; instantiating,on the target platform, the collection artifact containing an instanceof the selected artifact, each instantiation of the selected artifactinstance containing attributes characteristics, and a replica of theselected artifacts content; transmitting the instantiated collectionartifact back to the framework; and analyzing the selected artifact'sattributes and characteristics contained in the instantiated collectionartifact to ascertain appropriate access and actions allowed on theselected artifact, wherein association of any action with the selectedartifact is performed in compliance with rules of an originatingplatform from which the selected artifact is generated.
 2. The hardwareimplemented article of manufacture of claim 1 wherein the collectionartifact is generated by a builder plugin associated with the metamodelplugin in response to a request to access the selected artifact.
 3. Thehardware implemented article of manufacture of claim 2 wherein thecollection artifact comprises an XMI metadata file containing emptyinstantiations of the metamodel.
 4. The hardware implemented article ofmanufacture of claim 1 wherein the allowed actions include an invocationof an additional processing plugin which may process the selectedartifact.
 5. The hardware implemented article of manufacture of claim 4wherein the plugin is an MOF-enabled Java file generated from an XMImetamodel schema generated from a UML representation of the metamodel.6. A hardware implemented computer system identifying and associatingappropriate actions to a selected artifact in a framework providing acustomized application program, said hardware implemented computersystem comprising: a memory; a processor coupled to the memory; ametamodel specifying relevant information for capture pertaining to theselected artifact; a plugin implementation of the metamodel, said pluginbeing integratable into the framework and allowing another plugin of theframework to access the relevant information pertaining to the selectedartifact; a collection artifact containing an empty instantiation of themetamodel in which an instantiation of the metamodel may be stored; atransmission, from the framework, of the collection artifact to a targetplatform; an instance, on the target platform, of the collectionartifact containing an instance of the selected artifact, eachinstantiation of the selected artifact instance containing attributescharacteristics, and a replica of the selected artifacts content; atransmission of the instantiated collection artifact back to theframework; and a plugin for analyzing the selected artifact's attributesand characteristics contained in the instantiated collection artifact toascertain appropriate access and actions allowed on the selectedartifact, wherein association of any action with the selected artifactis performed in compliance with rules of an originating platform fromwhich the selected artifact is generated.
 7. The hardware implementedcomputer system of claim 6 wherein the collection artifact is generatedby a builder plugin associated with the metamodel plugin in response toa request to access the selected artifact.
 8. The hardware implementedcomputer system of claim 7 wherein the collection artifact comprises anXMI metadata file containing empty instantiations of the metamodel. 9.The hardware implemented computer system of claim 6 wherein the allowedactions include an invocation of an additional processing plugin whichmay process the selected artifact.
 10. The hardware implemented computersystem of claim 9 wherein the plugin is an MOF-enabled Java filegenerated from an XMI metamodel schema generated from a UMLrepresentation of the metamodel.